﻿using System;
using System.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SW_SoftBully.Controllers;
using SW_SoftBully.Models.ModuloAdministracion.Mantenible;
using System.Data.SqlClient;
using log4net;

namespace SW_SoftBully.Models.ModuloAdministracion.Mantenible
{
    public class MantenibleDAO
    {
        public List<MantenibleBean> ListarMantenible(MantenibleBean mantenible)
        {
            try
            {
                List<MantenibleBean> listaMantenible = new List<MantenibleBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "SELECT * FROM mantenible where estado=1";

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    MantenibleBean Mantenible = new MantenibleBean();
                    Mantenible.Nombre = Convert.ToString(dataReader["Nombre"]);
                    Mantenible.ID_Mantenible = Convert.ToInt32(dataReader["Id_mantenible"]);
                    Mantenible.ID_Edificio = Convert.ToInt32(dataReader["Id_edificio"]);
                    listaMantenible.Add(Mantenible);
                }
                dataReader.Close();
                sqlCon.Close();

                return listaMantenible;
            }
            catch (Exception e)
            {
                String men = e.ToString();
                mantenible.conexion = men;
                return null;
            }
        }

        public List<MantenibleBean> ListarMantenibleEdificio(MantenibleBean mantenible)
        {
            try
            {
                List<MantenibleBean> listaMantenible = new List<MantenibleBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "SELECT * FROM mantenible where estado=1 and Id_Edificio = " + mantenible.ID_Edificio.ToString();

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    MantenibleBean Mantenible = new MantenibleBean();
                    Mantenible.Nombre = Convert.ToString(dataReader["Nombre"]);
                    Mantenible.ID_Mantenible = Convert.ToInt32(dataReader["Id_mantenible"]);
                    Mantenible.ID_Edificio = Convert.ToInt32(dataReader["Id_edificio"]);
                    listaMantenible.Add(Mantenible);
                }
                dataReader.Close();
                sqlCon.Close();

                return listaMantenible;
            }
            catch (Exception e)
            {
                String men = e.ToString();
                mantenible.conexion = men;
                return null;
            }
        }



        public List<MantenibleBean> ListarMantenibleMiguel(MantenibleBean mantenible)
        {
            try
            {
                List<MantenibleBean> listaMantenible = new List<MantenibleBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "SELECT m.id_mantenible, m.Nombre, m.id_Edificio, m.tipo_mantenible, a.nombre_area " +
                                       "FROM mantenible m, mantenible_x_area_comun ma, area_comun a " +
                                       "WHERE m.Estado = 1 AND ma.id_mantenible = m.id_mantenible AND ma.id_area_comun = a.id_area_comun ";

                if (mantenible.id_area_comun > 0)
                {
                    commandString += " AND a.id_area_comun = " + mantenible.id_area_comun;
                }

                if (mantenible.ID_Edificio > 0)
                {
                    commandString += " AND m.id_edificio = " + mantenible.ID_Edificio;
                }

                if (!string.IsNullOrEmpty(mantenible.tipo_mantenible))
                {
                    if (mantenible.tipo_mantenible == "1")
                        commandString += " AND tipo_mantenible = 'Activo'";
                    else commandString += " AND tipo_mantenible = 'No Activo'";
                }

                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + commandString);

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    MantenibleBean Mantenible = new MantenibleBean();
                    Mantenible.Nombre = Convert.ToString(dataReader["Nombre"]);
                    Mantenible.ID_Mantenible = Convert.ToInt32(dataReader["id_mantenible"]);
                    Mantenible.ID_Edificio = Convert.ToInt32(dataReader["id_Edificio"]);
                    Mantenible.tipo_mantenible = Convert.ToString(dataReader["tipo_mantenible"]);
                    Mantenible.nombre_area = Convert.ToString(dataReader["nombre_area"]);
                    listaMantenible.Add(Mantenible);
                }
                dataReader.Close();
                sqlCon.Close();

                return listaMantenible;
            }
            catch (Exception e)
            {
                String men = e.ToString();
                mantenible.conexion = men;
                return null;
            }
        }
    }
}